module hunt.security.acl.Manager;

import hunt.security.acl.Role;
import hunt.security.acl.Identity;
import hunt.security.acl.User;
import hunt.security.acl.permission.Permission;
import kiss.logger;

class AccessManager
{
    private
    {
        Role[int] 			roles;
		Identity[string]	identitys;
    }

    public
    {
		Role createRole(int id, string name , Permission permission)
		{
            Role role = new Role;
            role.id = id;
            role.name = name;
			role.permission = permission;
            this.roles[id] = role;
        
            return role;
        }

        Role getRole(int id)
        {
            return this.roles[id];
        }

		void addIdentity(Identity identity)
		{
			identitys[identity.group] = identity;
		}

		Identity getIdentity(string groupName)
		{
			if( groupName !in identitys)
				return null;
			return identitys[groupName];
		}

        User createUser(int id, string name)
        {
			return new User(id , name);
        }
    }
}